# Contract template
This is a contract library based on Openzeppelin, a further simplification and use of the Openzeppelin contract library. Detailed test scripts were made for each contract.
GitHub :https://github.com/ThinkiumGroup/ContractTemplate
# Issue ERC20 tokens
- [Fixed total tokens](./Standard Template /ERC20/ERC20FixedSupply.md)
- [can destroy their tokens](./Standard Template /ERC20/ERC20WithBurnable.md)
- [can raise their tokens](./Standard Template /ERC20/ERC20WithMintable.md)
- [is capped their tokens](./Standard Template /ERC20/ERC20WithCapped.md)
- [can suspend their tokens](./Standard Template /ERC20/ERC20WithPausable.md)
# Lock-up contract
- [Issue tokens and lock up](./Standard Template /ERC20/IssueTokenWithTimelock.md)
- [lock up after issued tokens](./Standard Template /ERC20/IssueTokenBeforeTimelock.md)
# Launch crowdfunding tokens
- [Universal crowdfunding](./Standard Template /Crowdsale/AllowanceCrowdsale.md)
- [Scalable crowdfunding](./Standard Template /Crowdsale/MintedCrowdsale.md)
- [Crowdfunding with a cap](./Standard Template /Crowdsale/CappedCrowdsale.md)
- [Crowdfunding with quotas](./Standard Template /Crowdsale/IndividuallyCappedCrowdsale.md)
- [Suspended crowdfunding](./Standard Template /Crowdsale/PausableCrowdsale.md)
- [Time-limited crowdfunding](./Standard Template /Crowdsale/TimedCrowdsale.md)
- [Whitelist crowdfunding](./Standard Template /Crowdsale/WhitelistCrowdsale.md)
- [Terminable crowdfunding](./Standard Template /Crowdsale/FinalizableCrowdsale.md)
- [Crowdfunding to be delivered at maturity](./Standard Template /Crowdsale/PostDeliveryCrowdsale.md)
- [Crowdfunding for unsuccessful refunds](./Standard Template /Crowdsale/RefundableCrowdsale.md)
# Multifunction contract
- [Multi-function ERC20 token, can be issued, can be destroyed, can be suspended, there is a cap](./Standard Template /Multi/ERC20MultiFunction.md)
- [Multi-function crowdfunding contract: additional issuance, destruction, capping, quota, suspension, time limit, whitelist, successful delivery, unsuccessful refund ](./Standard Template /Multi/MultiFunctionCrowdsale.md)
- [Joint-stock beneficiary agreement](./Standard Template /Multi/CrowdsalePaymentSplitter.md)
# Issue ERC777 tokens
- [ERC777 tokens,](./Standard Template /ERC777/ERC777Contract.md)
# Issue ERC721 tokens
- [Fully functional ERC721 tokens](./Standard Template /ERC721/ERC721Full.md)
- [Destructible ERC721 tokens](./Standard Template /ERC721/ERC721Burnable.md)
- [ERC721 tokens can be minted](./Standard Template /ERC721/ERC721Mintable.md)
- [A suspended ERC721 token](./Standard Template /ERC721/ERC721Pausable.md)
# Draft
- [Token migration contract](./Standard Template /Multi/ERC20Migrator.md)
- [Snapchable ERC20 tokens](./Standard Template /Multi/ERC20WithSnapshot.md)
- [Release contract](./Standard Template /Multi/ERC20WithTokenVesting.md)
# Install
$ npm install //Installing dependency packages
# Deploy to the test node
$ npm run compile //Compile the contract
$ npm run node //Open a test node
$ npm run test //Test contract
$ npm run migrate //Deploy the contract to the test node
# Deploy the contract to truffle
$ truffle develop //Open the Truffle development environment
truffle(develop)> compile //Compile the contract
truffle(develop)> test //Test contract
truffle(develop)> migrate //Deploy contracts